/*!
	\copyright  Copyright (c) 2023 Qualcomm Technologies International, Ltd.
	            All Rights Reserved.
	            Qualcomm Technologies International, Ltd. Confidential and Proprietary.
	\file       storage_manager_config_types.h
	\defgroup   storage_manager_config_types 
	 @{
		\ingroup storage_manager
		\brief      The storage configuration data types/structures
*/

#ifndef STORAGE_MANAGER_CONFIG_TYPES_H_ 
#define STORAGE_MANAGER_CONFIG_TYPES_H_ 

#include "storage_manager_types.h"
#include "storage_manager_ra_partition_types.h"

/*! \brief Defines a storage address.
    \note This union grows or shrinks based on the number of storage manager implementations
 * 	Example:
* 		if storage_manager_ra_partition.c -- implements --> storage_manager_interface.h,
* 		the corresponding address format would come from --> storage_manager_ra_partition_types.h
 */
typedef union storage_manager_address_t
{	
	storage_mgr_addr_ra_partition_t ra_partition_addr;

} storage_mgr_addr_t;

/*! \brief Defines a storage configuration. 
 */
typedef struct storage_manager_config_t
{
	storage_mgr_type_t type;
	storage_mgr_addr_t address;

} storage_mgr_config_t;

/*! @} */

#endif /* STORAGE_MANAGER_CONFIG_TYPES_ */